docs: function(callback) {
          /**
           * Callback for QB.chat.privacylist.getNames().
           * @param {Object} error - The error object
           * @param {Object} response - The privacy list object (var names = response.names;)
           * @callback getNamesPrivacylistCallback
           * */
  
          var self = this,
              iq,
              stanzaParams = {
                  'type': 'get',
                  'from': self.helpers.getUserCurrentJid(),
                  'id': chatUtils.getUniqueId('getNames')
              };
  
          if(Utils.getEnv().browser){
              iq = $iq(stanzaParams).c('query', {
                  xmlns: Strophe.NS.PRIVACY_LIST
              });
  
              self.connection.sendIQ(iq, function(stanzaResult) {
                  var allNames = [], namesList = {},
                      defaultList = stanzaResult.getElementsByTagName('default'),
                      activeList = stanzaResult.getElementsByTagName('active'),
                      allLists = stanzaResult.getElementsByTagName('list');
  
                  var defaultName = defaultList && defaultList.length > 0 ? defaultList[0].getAttribute('name') : null;
                  var activeName = activeList && activeList.length > 0 ? activeList[0].getAttribute('name') : null;
  
                  for (var i = 0, len = allLists.length; i < len; i++) {
                      allNames.push(allLists[i].getAttribute('name'));
                  }
  
                  namesList = {
                      'default': defaultName,
                      'active': activeName,
                      'names': allNames
                  };
  
                  callback(null, namesList);
              }, function(stanzaError){
                  if(stanzaError){
                      var errorObject = chatUtils.getErrorFromXMLNode(stanzaError);
                      callback(errorObject, null);
                  }else{
                      callback(Utils.getError(408), null);
                  }
              });
          } else {
              iq = new XMPP.Stanza('iq', stanzaParams);
  
              iq.c('query', {
                  xmlns: chatUtils.MARKERS.PRIVACY
              });
  
              self.nodeStanzasCallbacks[iq.attrs.id] = function(stanza){
                  if(stanza.attrs.type !== 'error'){
  
                      var allNames = [], namesList = {},
                          query = stanza.getChild('query'),
                          defaultList = query.getChild('default'),
                          activeList = query.getChild('active'),
                          allLists = query.getChildElements('list');
  
                      var defaultName = defaultList ? defaultList.attrs.name : null,
                          activeName = activeList ? activeList.attrs.name : null;
  
                      for (var i = 0, len = allLists.length; i < len; i++) {
                          allNames.push(allLists[i].attrs.name);
                      }
  
                      namesList = {
                          'default': defaultName,
                          'active': activeName,
                          'names': allNames
                      };
  
                      callback(null, namesList);
                  } else {
                      callback(Utils.getError(408));
                  }
              };
  
              self.Client.send(iq);
          }
      }