public override void HandleMessage(ASC.Xmpp.Server.Streams.XmppStream stream, Message msg, XmppHandlerContext context) { msg.SwitchDirection(); msg.Type = MessageType.error; msg.Error = new Error(ErrorType.cancel, ErrorCondition.ItemNotFound); context.Sender.SendTo(stream, msg); }
public override IQ HandleIQ(ASC.Xmpp.Server.Streams.XmppStream stream, IQ iq, XmppHandlerContext context) { if (iq.Vcard != null && iq.Type == IqType.get) { //Handle vcard iq.Vcard = Member.GetVcard(); iq.Type = IqType.result; iq.SwitchDirection(); return(iq); } return(base.HandleIQ(stream, iq, context)); }
public override void HandlePresence(ASC.Xmpp.Server.Streams.XmppStream stream, Presence presence, XmppHandlerContext context) { //Presence to open new room if (IsUserAbleToCreateRooms(presence.From) && MucHelpers.IsJoinRequest(presence)) { //Register Service.CreateRoom(new Jid(presence.To.Bare), null); Service.HandlerManager.ProcessStreamElement(presence, stream);//Forward to room } else { //Return error presence.Type = PresenceType.error; presence.Error = new Error(ErrorType.cancel, ErrorCondition.NotAllowed); presence.SwitchDirection(); context.Sender.SendTo(stream, presence); } }