NAME
Net::XMPP::Message - XMPP Message Module
SYNOPSIS
Net::XMPP::Message is a companion to the Net::XMPP module.It provides the user a simple interface to set and retrieve allparts of an XMPP Message.
DESCRIPTION
A Net::XMPP::Message object is passed to the callback function forthe message. Also, the first argument to the callback functions isthe session ID from XML::Stream. There are some cases where youmight want thisinformation, like if you created a Client thatconnects to two servers at once, or for writing a mini server.use Net::XMPP;sub message {my ($sid,$Mess) = @_;...}You now have access to all of the retrieval functions available.To create a new message to send to the server:use Net::XMPP;$Mess = Net::XMPP::Message->new();Now you can call the creation functions below to populate the tagbefore sending it.
METHODS
Retrieval functions
GetTo() - returns the value in the to='' attribute for theGetTo("jid") <message/>. If you specify "jid" as an argumentthen a Net::XMPP::JID object is returned andyou can easily parse the parts of the JID.$to = $Mess->GetTo();$toJID = $Mess->GetTo("jid");GetFrom() - returns the value in the from='' attribute for theGetFrom("jid") <message/>. If you specify "jid" as an argumentthen a Net::XMPP::JID object is returned andyou can easily parse the parts of the JID.$from = $Mess->GetFrom();$fromJID = $Mess->GetFrom("jid");GetType() - returns the type='' attribute of the <message/>. Eachmessage is one of four types:normal regular message (default if type is blank)chat one on one chatgroupchat multi-person chatheadline headlineerror error message$type = $Mess->GetType();GetSubject() - returns the data in the <subject/> tag.$subject = $Mess->GetSubject();GetBody() - returns the data in the <body/> tag.$body = $Mess->GetBody();GetThread() - returns the data in the <thread/> tag.$thread = $Mess->GetThread();GetError() - returns a string with the data of the <error/> tag.$error = $Mess->GetError();GetErrorCode() - returns a string with the code='' attribute of the<error/> tag.$errCode = $Mess->GetErrorCode();GetTimeStamp() - returns a string that represents the time thismessage object was created (and probably received)for sending to the client. If there is ajabber:x:delay tag then that time is used to showwhen the message was sent.$date = $Mess->GetTimeStamp();
Creation functions
SetMessage(to=>string|JID, - set multiple fields in the <message/>from=>string|JID, at one time. This is a cumulativetype=>string, and over writing action. If you setsubject=>string, the "to" attribute twice, the secondbody=>string, setting is what is used. If you setthread=>string, the subject, and then set the bodyerrorcode=>string, then both will be in the <message/>error=>string) tag. For valid settings read thespecific Set functions below.$Mess->SetMessage(TO=>"bob\@jabber.org",Subject=>"Lunch",BoDy=>"Let's do lunch!");$Mess->SetMessage(to=>"bob\@jabber.org",from=>"jabber.org",errorcode=>404,error=>"Not found");SetTo(string) - sets the to='' attribute. You can either passSetTo(JID) a string or a JID object. They must be valid JIDsor the server will return an error message.(ie. [email protected]/Work)$Mess->SetTo("test\@jabber.org");SetFrom(string) - sets the from='' attribute. You can either passSetFrom(JID) a string or a JID object. They must be valid JIDsor the server will return an error message. (ie.jabber:[email protected]/Work) This field is notrequired if you are writing a Client since theserver will put the JID of your connection inthere to prevent spamming.$Mess->SetFrom("me\@jabber.org");SetType(string) - sets the type attribute. Valid settings are:normal regular message (default if blank)chat one one one chat style messagegroupchat multi-person chatroom messageheadline news headline, stock ticker, etc...error error message$Mess->SetType("groupchat");SetSubject(string) - sets the subject of the <message/>.$Mess->SetSubject("This is a test");SetBody(string) - sets the body of the <message/>.$Mess->SetBody("To be or not to be...");SetThread(string) - sets the thread of the <message/>. You shouldcopy this out of the message being replied to sothat the thread is maintained.$Mess->SetThread("AE912B3");SetErrorCode(string) - sets the error code of the <message/>.$Mess->SetErrorCode(403);SetError(string) - sets the error string of the <message/>.$Mess->SetError("Permission Denied");Reply(hash) - creates a new Message object and populates theto/from, and the subject by putting "re: " infront. If you specify a hash the same as withSetMessage then those values will override theReply values.$Reply = $Mess->Reply();$Reply = $Mess->Reply(type=>"chat");
Removal functions
RemoveTo() - removes the to attribute from the <message/>.$Mess->RemoveTo();RemoveFrom() - removes the from attribute from the <message/>.$Mess->RemoveFrom();RemoveType() - removes the type attribute from the <message/>.$Mess->RemoveType();RemoveSubject() - removes the <subject/> element from the<message/>.$Mess->RemoveSubject();RemoveBody() - removes the <body/> element from the<message/>.$Mess->RemoveBody();RemoveThread() - removes the <thread/> element from the <message/>.$Mess->RemoveThread();RemoveError() - removes the <error/> element from the <message/>.$Mess->RemoveError();RemoveErrorCode() - removes the code attribute from the <error/>element in the <message/>.$Mess->RemoveErrorCode();
Test functions
DefinedTo() - returns 1 if the to attribute is defined in the<message/>, 0 otherwise.$test = $Mess->DefinedTo();DefinedFrom() - returns 1 if the from attribute is defined in the<message/>, 0 otherwise.$test = $Mess->DefinedFrom();DefinedType() - returns 1 if the type attribute is defined in the<message/>, 0 otherwise.$test = $Mess->DefinedType();DefinedSubject() - returns 1 if <subject/> is defined in the<message/>, 0 otherwise.$test = $Mess->DefinedSubject();DefinedBody() - returns 1 if <body/> is defined in the <message/>,0 otherwise.$test = $Mess->DefinedBody();DefinedThread() - returns 1 if <thread/> is defined in the <message/>,0 otherwise.$test = $Mess->DefinedThread();DefinedErrorCode() - returns 1 if <error/> is defined in the<message/>, 0 otherwise.$test = $Mess->DefinedErrorCode();DefinedError() - returns 1 if the code attribute is defined in the<error/>, 0 otherwise.$test = $Mess->DefinedError();
AUTHOR
Originally authored by Ryan Eatmon.
Previously maintained by Eric Hacker.
Currently maintained by Darian Anthony Patrick.
COPYRIGHT
This module is free software, you can redistribute it and/or modify it under the LGPL 2.1.