private void ParseDiscoInfoResults(DiscoveryInfoResponse result)
        {
            this.Cursor = Cursors.WaitCursor;

            string MUCNS = RegisteredJabberNamespaces.MultiUserChat;
            string GCNS = MUCDiscoFeatures.GroupChat;
            if (result.Features.Contains(MUCNS) || result.Features.Contains(GCNS))
            {
                const int RoomItemsTimeout = 30000;

                //this is a service supporting chat rooms.  add it to the join room drop down.
                ChatServerMenuItem itm = AddChatServerMenuItem(result.From);

                //look for chat rooms on this service
                DiscoveryItemsRequest req = new DiscoveryItemsRequest(result.From);
                _sm.BeginSend(req.ToPacket, RoomItemsTimeout, new AsyncCallback(ChatServiceItemsCallback), itm);
            }

            this.Cursor = Cursors.Default;
        }
        public void RefreshChatRoomsList()
        {
            //clear all the menus
            while ( mnuJoinRoom.MenuItems.Count > 2 )
                mnuJoinRoom.MenuItems.RemoveAt(2);

            //start the disco request
            DiscoveryItemsRequest req = new DiscoveryItemsRequest(_sm.LocalUser.ServerJID);
            _sm.BeginSend(req.ToPacket, new AsyncCallback(DiscoCompleteCallback));
        }