// Public method for callers to get a new contact added to the Roster // Note that we do not add it to our internal roster, the server will send a roster item push public void Add(string jid, string nickname, string[] groups) { // Add the contact to our roster jabber.protocol.iq.RosterIQ riq = new jabber.protocol.iq.RosterIQ(XmppGlobal.InternalClient.Document); riq.Type = jabber.protocol.client.IQType.set; jabber.protocol.iq.Roster r = (jabber.protocol.iq.Roster)riq.Query; jabber.protocol.iq.Item i = r.AddItem(); i.JID = new jabber.JID(jid); foreach (string g in groups) { i.AddGroup(g); } if (!string.IsNullOrEmpty(nickname)) { i.Nickname = nickname; } XmppGlobal.InternalClient.Write(riq); // Subscribe to the contact's presence jabber.protocol.client.Presence p = new jabber.protocol.client.Presence(XmppGlobal.InternalClient.Document); p.Type = jabber.protocol.client.PresenceType.subscribe; p.To = new jabber.JID(jid); XmppGlobal.InternalClient.Write(p); }
private void BotClient_OnPresence(object sender, jabber.protocol.client.Presence pres) { Console.WriteLine("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); Console.WriteLine(pres.ToString()); Console.WriteLine("***********************************"); Console.WriteLine(pres.Type.ToString()); // Available/Unavailable Console.WriteLine(pres.Value); Console.WriteLine(pres.Show); // dnd / away / "" Console.WriteLine("------------------------"); Console.WriteLine(pres.HasAttribute("type") ? pres.GetAttribute("type").ToString() : ""); Console.WriteLine("***********************************"); JabberClient temp = (JabberClient)sender; ApplicationUser usr; string usrname = string.Format("{0}@{1}", pres.From.User.ToString(), pres.From.Server.ToString()); if (this.AppMan.AppUsers.TryGetValue(usrname, out usr)) { PresenceEventArgs presenceArgs = new PresenceEventArgs(usr.UserId, pres.Show, pres.Type.ToString()); usr.Presence = presenceArgs.Presence; usr.OnPresenceEvent(presenceArgs); } else { if (!string.IsNullOrEmpty(this.AppMan.DefaultApplication)) { var app = this.AppMan.Apps[this.AppMan.DefaultApplication]; var method = app.AppType.GetMethod("InitiateConversation"); if (method != null && (bool)method.Invoke(null, new object[] { usrname })) { usr = this.AppMan.AddUser(usrname); usr.SystemReply += new SystemReplyHandler(usr_SystemReply); usr.TriggerApplicationEvent += new TriggerApplicationEventHandler(usr_TriggerApplicationEvent); usr.Tag = pres.From.ToString(); PresenceEventArgs presenceArgs = new PresenceEventArgs(usr.UserId, pres.Show, pres.Type.ToString()); usr.Presence = presenceArgs.Presence; } } } // SHOW VALUE //* nil (Available, no <show/> element) //* :away //* :chat (Free for chat) //* :dnd (Do not disturb) //* :xa (Extended away) //Type Values //* :error //* :probe (Servers send this to request presence information) //* :subscribe (Subscription request) //* :subscribed (Subscription approval) //* :unavailable (User has gone offline) //* :unsubscribe (Unsubscription request) //* :unsubscribed (Unsubscription approval) //* [nil] (available) }
void _client_OnPresence(object sender, jabber.protocol.client.Presence pres) { //_client.pre int n = 0; foreach (var p in _presence) { n++; } this.ViewersCount = n; }
private void Cancel_Button_Click(object sender, EventArgs e) { jabber.protocol.client.Presence p = new jabber.protocol.client.Presence(XmppGlobal.Connection.JabberDocument); p.To = request.From; p.Type = jabber.protocol.client.PresenceType.unsubscribed; XmppGlobal.Connection.SendPacket(p); DialogResult = DialogResult.Cancel; Close(); }
private void Cancel_Button_Click(object sender, EventArgs e) { jabber.protocol.client.Presence p = new jabber.protocol.client.Presence (XmppGlobal.Connection.JabberDocument); p.To = request.From; p.Type = jabber.protocol.client.PresenceType.unsubscribed; XmppGlobal.Connection.SendPacket (p); DialogResult = DialogResult.Cancel; Close (); }
private void PresenceChanged(object sender, PresenceItemEventArgs e) { RosterItem ri = (RosterItem)sender; jabber.protocol.client.Presence pres = ri.GetPresence(); if (pres == null) { pres = e.Item; } ContactItem ci = null; if (pres != null) { ci = ContactListPanel.GetContactItem(ri.Jid.Bare); if (pres.Status != null) { ci.TextLineTwo = pres.Status; } else if (pres.Show != null) { ci.TextLineTwo = pres.Show; } else { ci.TextLineTwo = "Online"; } } switch (pres.Type) { case jabber.protocol.client.PresenceType.available: if (!(ci == null)) { ci.Enabled = true; ci.Visible = true; ci.Image = ri.Avatar; } break; case jabber.protocol.client.PresenceType.unavailable: if (ci != null) { ci.Enabled = false; ci.Visible = false; } break; } }
internal void GotPresenceItem(jabber.protocol.client.Presence pres) { switch (pres.Type) { case jabber.protocol.client.PresenceType.available: RequestVCard(null, null, false); OnPresenceChanged(new PresenceItemEventArgs(pres)); break; case jabber.protocol.client.PresenceType.unavailable: OnPresenceChanged(new PresenceItemEventArgs(pres)); break; } }
public SubscriptionRequestDialog(jabber.protocol.client.Presence request) { InitializeComponent (); this.request = request; RequestLabel.Text = string.Format ("{0} would like to add you to their contact list. Is this OK?", request.From.Bare); AddCheckBox.Visible = false; if (!XmppGlobal.Roster.ContainsKey (request.From)) if (!XmppGlobal.Roster.ContainsKey (new jabber.JID (request.From.Bare))) AddCheckBox.Visible = true; }
private void PresenceChanged(object sender, PresenceItemEventArgs e) { RosterItem ri = (RosterItem)sender; jabber.protocol.client.Presence pres = ri.GetPresence(); if (pres == null) { StatusBarPanel1.Text = string.Format("{0} is offline.", ri.GetDisplayName()); StatusBarPanel1.Visible = true; } else { switch (pres.Type) { case jabber.protocol.client.PresenceType.available: switch (pres.Show) { case "away": case "xa": case "dnd": if (pres.Status == null) { StatusBarPanel1.Text = string.Format("{0} is away.", ri.GetDisplayName()); } else { StatusBarPanel1.Text = string.Format("{0} is away. {1}", ri.GetDisplayName(), pres.Status.Trim().Length > 0 ? string.Format(" ({0})", pres.Status.Trim()) : string.Empty); } StatusBarPanel1.Visible = true; break; default: StatusBarPanel1.Visible = false; break; } break; case jabber.protocol.client.PresenceType.unavailable: StatusBarPanel1.Text = string.Format("{0} is offline.", ri.GetDisplayName()); StatusBarPanel1.Visible = true; break; } } UserAvatar.Image = ri.Avatar; }
public SubscriptionRequestDialog(jabber.protocol.client.Presence request) { InitializeComponent(); this.request = request; RequestLabel.Text = string.Format("{0} would like to add you to their contact list. Is this OK?", request.From.Bare); AddCheckBox.Visible = false; if (!XmppGlobal.Roster.ContainsKey(request.From)) { if (!XmppGlobal.Roster.ContainsKey(new jabber.JID(request.From.Bare))) { AddCheckBox.Visible = true; } } }
void _client_OnPresence(object sender, jabber.protocol.client.Presence pres) { if (pres.From == null) { return; } if (pres.Type == jabber.protocol.client.PresenceType.available || pres.Type == jabber.protocol.client.PresenceType.subscribe || pres.Type == jabber.protocol.client.PresenceType.subscribed) { _OnUpdateBuddy(pres.From.Bare, true); } else { _OnUpdateBuddy(pres.From.Bare, false); } }
private void OK_Button_Click(object sender, EventArgs e) { jabber.protocol.client.Presence p = new jabber.protocol.client.Presence(XmppGlobal.Connection.JabberDocument); p.To = request.From; p.Type = jabber.protocol.client.PresenceType.subscribed; XmppGlobal.Connection.SendPacket(p); if (AddCheckBox.Checked) { XmppGlobal.Roster.Add(request.From.Bare, string.Empty); jabber.protocol.client.Presence p2 = new jabber.protocol.client.Presence(XmppGlobal.Connection.JabberDocument); p2.To = request.From; p2.Type = jabber.protocol.client.PresenceType.subscribe; XmppGlobal.Connection.SendPacket(p2); } DialogResult = DialogResult.OK; Close(); }
void c_OnPresence(object sender, jabber.protocol.client.Presence pres) { if (users.ContainsKey(pres.From.User)) { users[pres.From.User].status = pres.Status; } else { User us = new User(pres.From.User, "", "", pres.Status, null); users.Add(pres.From.User, us); theUsers.Add(us); } if (users[pres.From.User].State == "offline") { users[pres.From.User].isOnline = false; if (theUsers.Contains(users[pres.From.User])) { theUsers.Remove(users[pres.From.User]); } } else { users[pres.From.User].isOnline = (users[pres.From.User].Nickname != ""); if (!theUsers.Contains(users[pres.From.User])) { theUsers.Add(users[pres.From.User]); } } if (theUsers.Contains(users[pres.From.User])) { if (UserChanged != null) { UserChanged(users[pres.From.User]); } } }
private void OK_Button_Click(object sender, EventArgs e) { jabber.protocol.client.Presence p = new jabber.protocol.client.Presence (XmppGlobal.Connection.JabberDocument); p.To = request.From; p.Type = jabber.protocol.client.PresenceType.subscribed; XmppGlobal.Connection.SendPacket (p); if (AddCheckBox.Checked) { XmppGlobal.Roster.Add (request.From.Bare, string.Empty); jabber.protocol.client.Presence p2 = new jabber.protocol.client.Presence (XmppGlobal.Connection.JabberDocument); p2.To = request.From; p2.Type = jabber.protocol.client.PresenceType.subscribe; XmppGlobal.Connection.SendPacket (p2); } DialogResult = DialogResult.OK; Close (); }
public PresenceItemEventArgs(jabber.protocol.client.Presence item) { this.item = item; }
void _client_OnBeforePresenceOut(object sender, jabber.protocol.client.Presence pres) { //throw new NotImplementedException(); }
public PresenceItemEventArgs(jabber.protocol.client.Presence item) { this.item = item; }
private void m_cli_OnPresence(object sender, jabber.protocol.client.Presence pres) { throw new Exception("The method or operation is not implemented."); }