/// <summary> /// Discover item features /// </summary> /// <param name = "serviceJid"></param> public virtual void DiscoverFeatures() { if (features == null) { features = new List <XmppServiceFeature>(); } else { features.Clear(); } // Get Service Info var iq = new IQ { ID = XmppIdentifierGenerator.Generate(), Type = IQType.Get, From = session.UserId, To = Identifier }; iq.Items.Add(new ServiceQuery()); featuresRequested = true; PendingMessages.Add(iq.ID); session.Send(iq); waitEvent.WaitOne(); }
public void AdvertiseCapabilities() { if (!String.IsNullOrEmpty(ServiceDiscoveryName) && !String.IsNullOrEmpty(Node) && Identities.Count > 0) { var presence = new Presence { Id = XmppIdentifierGenerator.Generate() }; if (session.Capabilities != null) { presence.Items.Add(GetEntityCapabilities()); } session.Send(presence); } }
/// <summary> /// Discover if we have personal eventing support enabled /// </summary> /// <returns></returns> internal void DiscoverSupport() { var query = new ServiceItemQuery(); var iq = new IQ(); iq.ID = XmppIdentifierGenerator.Generate(); iq.Type = IQType.Get; iq.From = session.UserId; iq.To = session.UserId.BareIdentifier; iq.Items.Add(query); pendingMessages.Add(iq.ID); features.Clear(); session.Send(iq); }
/// <summary> /// Discover existing services provided by the XMPP Server /// </summary> /// <returns></returns> public void DiscoverServices() { Clear(); string domain = ((String.IsNullOrEmpty(domainName)) ? session.UserId.DomainName : domainName); string messageId = XmppIdentifierGenerator.Generate(); var iq = new IQ { ID = messageId, Type = IQType.Get, From = session.UserId, To = domain }; iq.Items.Add(new ServiceItemQuery()); pendingMessages.Add(messageId); session.Send(iq); }