############################################################################## # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # Copyright (C) 1998-2004 Jabber Software Foundation http://jabber.org/ # ############################################################################## package Net::Jabber::Stanza; =head1 NAME Net::Jabber::Stanza - Jabber Stanza Module =head1 SYNOPSIS Net::Jabber::Stanza is a private package that serves as a basis for all Jabber stanzas generated by Net::Jabber. =head1 DESCRIPTION This module is not meant to be used directly. You should be using either Net::Jabber::IQ, Net::Jabber::Message, Net::Jabber::Presence, or another package that inherits from Net::Jabber::Stanza. That said, this is where all of the namespaced methods are defined. The current supported namespaces are: =cut # NS_BEGIN =pod http://jabber.org/protocol/bytestreams http://jabber.org/protocol/commands http://jabber.org/protocol/disco#info http://jabber.org/protocol/disco#items http://jabber.org/protocol/feature-neg http://jabber.org/protocol/muc http://jabber.org/protocol/muc#admin http://jabber.org/protocol/muc#user http://jabber.org/protocol/pubsub http://jabber.org/protocol/pubsub#event http://jabber.org/protocol/pubsub#owner http://jabber.org/protocol/si http://jabber.org/protocol/si/profile/file-transfer jabber:iq:agent - DEPRECATED jabber:iq:agents - DEPRECATED jabber:iq:autoupdate jabber:iq:browse - DEPRECATED jabber:iq:conference jabber:iq:filter - DEPRECATED jabber:iq:gateway jabber:iq:last jabber:iq:oob jabber:iq:pass jabber:iq:rpc jabber:iq:search jabber:iq:time jabber:iq:version jabber:x:autoupdate jabber:x:conference jabber:x:data jabber:x:delay jabber:x:encrypted jabber:x:event jabber:x:expire jabber:x:oob jabber:x:roster jabber:x:signed =cut # NS_END =pod For more information on what these namespaces are for, visit http://www.jabber.org and browse the Jabber Programmers Guide. The following tables can be read as follows: ny:private:ns Name Type Get Set Remove Defined Add ========================== ======= === === ====== ======= === Foo scalar X X X X Bar child X Bars child X Test master X X Withing the my:private:ns namespace, there exists the functions: GetFoo(), SetFoo(), RemoveFoo(), DefinedFoo() AddBar() GetBars(), DefinedBars() GetTest(), SetMaster() Hopefully it should be obvious how this all works. If not feel free to contact me and I'll work on adding more documentation. =cut # DOC_BEGIN =head1 http://jabber.org/protocol/bytestreams Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Activate scalar X X X X SID scalar X X X X StreamHostUsedJID jid X X X X StreamHost child X StreamHosts child X X X ByteStreams master X X =head1 http://jabber.org/protocol/bytestreams - streamhost objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Host scalar X X X X JID jid X X X X Port scalar X X X X ZeroConf scalar X X X X StreamHost master X X =head1 http://jabber.org/protocol/commands Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Action scalar X X X X Node scalar X X X X SessionID scalar X X X X Status scalar X X X X Note child X Notes child X X X Command master X X =head1 http://jabber.org/protocol/commands - note objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Message scalar X X X X Type scalar X X X X Note master X X =head1 http://jabber.org/protocol/disco#info Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Feature child X Features child X X X Identities child X X X Identity child X DiscoInfo master X X =head1 http://jabber.org/protocol/disco#info - feature objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Var scalar X X X X Feature master X X =head1 http://jabber.org/protocol/disco#info - identity objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Category scalar X X X X Name scalar X X X X Type scalar X X X X Identity master X X =head1 http://jabber.org/protocol/disco#items Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Item child X Items child X X X DiscoItems master X X =head1 http://jabber.org/protocol/disco#items - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Action scalar X X X X JID jid X X X X Name scalar X X X X Node scalar X X X X Item master X X =head1 http://jabber.org/protocol/feature-neg Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === FeatureNeg master X X =head1 http://jabber.org/protocol/muc Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Password scalar X X X X MUC master X X =head1 http://jabber.org/protocol/muc#admin Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Item child X Items child X X X Admin master X X =head1 http://jabber.org/protocol/muc#admin - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ActorJID jid X X X X Affiliation scalar X X X X JID jid X X X X Nick scalar X X X X Reason scalar X X X X Role scalar X X X X Item master X X =head1 http://jabber.org/protocol/muc#user Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Alt scalar X X X X Password scalar X X X X StatusCode scalar X X X X Invite child X X X X Item child X X X X User master X X =head1 http://jabber.org/protocol/muc#user - invite objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === From jid X X X X Reason scalar X X X X To jid X X X X Invite master X X =head1 http://jabber.org/protocol/muc#user - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ActorJID jid X X X X Affiliation scalar X X X X JID jid X X X X Nick scalar X X X X Reason scalar X X X X Role scalar X X X X Item master X X =head1 http://jabber.org/protocol/pubsub Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Affiliations child X X X X Configure child X X X X Create child X X X X Delete child X X X X Entities child X X X X Entity child X X X X Item child X X X X Items child X X X X Options child X X X X Publish child X X X X Purge child X X X X Retract child X X X X Subscribe child X X X X Unsubscribe child X X X X PubSub master X X =head1 http://jabber.org/protocol/pubsub - affiliations objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Entity child X X X X Affiliations master X X =head1 http://jabber.org/protocol/pubsub - configure objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Configure master X X =head1 http://jabber.org/protocol/pubsub - create objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Create master X X =head1 http://jabber.org/protocol/pubsub - delete objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Delete master X X =head1 http://jabber.org/protocol/pubsub - entities objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Entity child X X X X Entities master X X =head1 http://jabber.org/protocol/pubsub - entity objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Affiliation scalar X X X X JID jid X X X X Node scalar X X X X Subscription scalar X X X X SubscribeOptions child X X X X Entity master X X =head1 http://jabber.org/protocol/pubsub - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ID scalar X X X X Payload raw X X X X Item master X X =head1 http://jabber.org/protocol/pubsub - items objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === MaxItems scalar X X X X Node scalar X X X X Item child X X X X Items master X X =head1 http://jabber.org/protocol/pubsub - options objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Node scalar X X X X Options master X X =head1 http://jabber.org/protocol/pubsub - publish objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Item child X X X X Publish master X X =head1 http://jabber.org/protocol/pubsub - purge objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Purge master X X =head1 http://jabber.org/protocol/pubsub - retract objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Item child X X X X Retract master X X =head1 http://jabber.org/protocol/pubsub - subscribe objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Node scalar X X X X Subscribe master X X =head1 http://jabber.org/protocol/pubsub - subscribe-options objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Required flag X X X X SubscribeOptions master X X =head1 http://jabber.org/protocol/pubsub - unsubscribe objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Node scalar X X X X Unsubscribe master X X =head1 http://jabber.org/protocol/pubsub#event Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Delete child X X X X Items child X X X X Event master X X =head1 http://jabber.org/protocol/pubsub#event - delete objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Delete master X X =head1 http://jabber.org/protocol/pubsub#event - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ID scalar X X X X Payload raw X X X X Item master X X =head1 http://jabber.org/protocol/pubsub#event - items objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Item child X X X X Items master X X =head1 http://jabber.org/protocol/pubsub#owner Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Action scalar X X X X Configure child X X X X Owner master X X =head1 http://jabber.org/protocol/pubsub#owner - configure objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Configure master X X =head1 http://jabber.org/protocol/si Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ID scalar X X X X MimeType scalar X X X X Profile scalar X X X X Stream master X X =head1 http://jabber.org/protocol/si/profile/file-transfer Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Date scalar X X X X Desc scalar X X X X Hash scalar X X X X Name scalar X X X X Range flag X X X X RangeLength scalar X X X X RangeOffset scalar X X X X Size scalar X X X X File master X X =head1 jabber:iq:agent - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Agents flag X X X X Description scalar X X X X GroupChat flag X X X X JID jid X X X X Name scalar X X X X Register flag X X X X Search flag X X X X Service scalar X X X X Transport scalar X X X X URL scalar X X X X Agent master X X =head1 jabber:iq:agents - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Agent child X Agents child X X X =head1 jabber:iq:autoupdate Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Beta child X Dev child X Release child X Releases child X X X =head1 jabber:iq:autoupdate - release objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X Priority scalar X X X X URL scalar X X X X Version scalar X X X X Release master X X =head1 jabber:iq:browse - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Category scalar X X X X JID jid X X X X NS array X X X X Name scalar X X X X Type scalar X X X X Item child X Items child X X X Browse master X X =head1 jabber:iq:browse - item objects - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Category scalar X X X X JID jid X X X X NS array X X X X Name scalar X X X X Type scalar X X X X Item child X Items child X X X Browse master X X =head1 jabber:iq:conference Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ID scalar X X X X Name scalar X X X X Nick scalar X X X X Privacy flag X X X X Secret scalar X X X X Conference master X X =head1 jabber:iq:filter - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Rule child X Rules child X X X =head1 jabber:iq:filter - rule objects - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Body scalar X X X X Continued scalar X X X X Drop scalar X X X X Edit scalar X X X X Error scalar X X X X From scalar X X X X Offline scalar X X X X Reply scalar X X X X Resource scalar X X X X Show scalar X X X X Size scalar X X X X Subject scalar X X X X Time scalar X X X X Type scalar X X X X Unavailable scalar X X X X Rule master X X =head1 jabber:iq:gateway Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X JID jid X X X X Prompt scalar X X X X Gateway master X X =head1 jabber:iq:last Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Message scalar X X X X Seconds scalar X X X X Last master X X =head1 jabber:iq:oob Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X URL scalar X X X X Oob master X X =head1 jabber:iq:pass Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Client scalar X X X X ClientPort scalar X X X X Close flag X X X X Expire scalar X X X X OneShot flag X X X X Proxy scalar X X X X ProxyPort scalar X X X X Server scalar X X X X ServerPort scalar X X X X Pass master X X =head1 jabber:iq:rpc Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === MethodCall child X X X X MethodResponse child X X X X =head1 jabber:iq:rpc - array objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Data child X Datas child X X X =head1 jabber:iq:rpc - data objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Value child X X X X =head1 jabber:iq:rpc - fault objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Value child X X X X =head1 jabber:iq:rpc - member objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Name scalar X X X X Value child X X X X Member master X X =head1 jabber:iq:rpc - methodCall objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === MethodName scalar X X X X Params child X X X X MethodCall master X X =head1 jabber:iq:rpc - methodResponse objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Fault child X X X X Params child X X X X =head1 jabber:iq:rpc - param objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Value child X X X X =head1 jabber:iq:rpc - params objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Param child X Params child X X X =head1 jabber:iq:rpc - struct objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Member child X Members child X X X =head1 jabber:iq:rpc - value objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Base64 scalar X X X X Boolean scalar X X X X DateTime scalar X X X X Double scalar X X X X I4 scalar X X X X Int scalar X X X X String scalar X X X X Value scalar X X X X Array child X X X X Struct child X X X X RPCValue master X X =head1 jabber:iq:search Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Email scalar X X X X Family scalar X X X X First scalar X X X X Given scalar X X X X Instructions scalar X X X X Key scalar X X X X Last scalar X X X X Name scalar X X X X Nick scalar X X X X Truncated flag X X X X Item child X Items child X X X Search master X X =head1 jabber:iq:search - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Email scalar X X X X Family scalar X X X X First scalar X X X X Given scalar X X X X JID jid X X X X Key scalar X X X X Last scalar X X X X Name scalar X X X X Nick scalar X X X X Item master X X =head1 jabber:iq:time Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Display special X X X X TZ special X X X X UTC special X X X X Time master X X =head1 jabber:iq:version Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Name scalar X X X X OS special X X X X Ver special X X X X Version master X X =head1 jabber:x:autoupdate Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Autoupdate master X X =head1 jabber:x:conference Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Conference master X X =head1 jabber:x:data Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Form scalar X X X X Instructions scalar X X X X Title scalar X X X X Type scalar X X X X Field child X Fields child X X X Item child X Items child X X X Reported child X X X X Data master X X =head1 jabber:x:data - field objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X Label scalar X X X X Required flag X X X X Type scalar X X X X Value array X X X X Var scalar X X X X Option child X Options child X X X Field master X X =head1 jabber:x:data - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Field child X Fields child X X X Item master X X =head1 jabber:x:data - option objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Label scalar X X X X Value scalar X X X X Option master X X =head1 jabber:x:data - reported objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Field child X Fields child X X X Reported master X X =head1 jabber:x:delay Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === From jid X X X X Message scalar X X X X Stamp timestamp X X X X Delay master X X =head1 jabber:x:encrypted Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Message scalar X X X X Encrypted master X X =head1 jabber:x:event Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Composing flag X X X X Delivered flag X X X X Displayed flag X X X X ID scalar X X X X Offline flag X X X X Event master X X =head1 jabber:x:expire Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Seconds scalar X X X X Expire master X X =head1 jabber:x:oob Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X URL scalar X X X X Oob master X X =head1 jabber:x:roster Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Item child X Items child X X X Roster master X X =head1 jabber:x:roster - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Ask scalar X X X X Group array X X X X JID jid X X X X Name scalar X X X X Subscription scalar X X X X Item master X X =head1 jabber:x:signed Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Signature scalar X X X X Signed master X X # DOC_BEGIN =head1 http://jabber.org/protocol/bytestreams Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Activate scalar X X X X SID scalar X X X X StreamHostUsedJID jid X X X X StreamHost child X StreamHosts child X X X ByteStreams master X X =head1 http://jabber.org/protocol/bytestreams - streamhost objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Host scalar X X X X JID jid X X X X Port scalar X X X X ZeroConf scalar X X X X StreamHost master X X =head1 http://jabber.org/protocol/commands Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Action scalar X X X X Node scalar X X X X SessionID scalar X X X X Status scalar X X X X Note child X Notes child X X X Command master X X =head1 http://jabber.org/protocol/commands - note objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Message scalar X X X X Type scalar X X X X Note master X X =head1 http://jabber.org/protocol/disco#info Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Feature child X Features child X X X Identities child X X X Identity child X DiscoInfo master X X =head1 http://jabber.org/protocol/disco#info - feature objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Var scalar X X X X Feature master X X =head1 http://jabber.org/protocol/disco#info - identity objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Category scalar X X X X Name scalar X X X X Type scalar X X X X Identity master X X =head1 http://jabber.org/protocol/disco#items Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Item child X Items child X X X DiscoItems master X X =head1 http://jabber.org/protocol/disco#items - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Action scalar X X X X JID jid X X X X Name scalar X X X X Node scalar X X X X Item master X X =head1 http://jabber.org/protocol/feature-neg Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === FeatureNeg master X X =head1 http://jabber.org/protocol/muc Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Password scalar X X X X MUC master X X =head1 http://jabber.org/protocol/muc#admin Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Item child X Items child X X X Admin master X X =head1 http://jabber.org/protocol/muc#admin - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ActorJID jid X X X X Affiliation scalar X X X X JID jid X X X X Nick scalar X X X X Reason scalar X X X X Role scalar X X X X Item master X X =head1 http://jabber.org/protocol/muc#user Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Alt scalar X X X X Password scalar X X X X StatusCode scalar X X X X Invite child X X X X Item child X X X X User master X X =head1 http://jabber.org/protocol/muc#user - invite objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === From jid X X X X Reason scalar X X X X To jid X X X X Invite master X X =head1 http://jabber.org/protocol/muc#user - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ActorJID jid X X X X Affiliation scalar X X X X JID jid X X X X Nick scalar X X X X Reason scalar X X X X Role scalar X X X X Item master X X =head1 http://jabber.org/protocol/pubsub Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Affiliations child X X X X Configure child X X X X Create child X X X X Delete child X X X X Entities child X X X X Entity child X X X X Item child X X X X Items child X X X X Options child X X X X Publish child X X X X Purge child X X X X Retract child X X X X Subscribe child X X X X Unsubscribe child X X X X PubSub master X X =head1 http://jabber.org/protocol/pubsub - affiliations objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Entity child X X X X Affiliations master X X =head1 http://jabber.org/protocol/pubsub - configure objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Configure master X X =head1 http://jabber.org/protocol/pubsub - create objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Create master X X =head1 http://jabber.org/protocol/pubsub - delete objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Delete master X X =head1 http://jabber.org/protocol/pubsub - entities objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Entity child X X X X Entities master X X =head1 http://jabber.org/protocol/pubsub - entity objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Affiliation scalar X X X X JID jid X X X X Node scalar X X X X Subscription scalar X X X X SubscribeOptions child X X X X Entity master X X =head1 http://jabber.org/protocol/pubsub - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ID scalar X X X X Payload raw X X X X Item master X X =head1 http://jabber.org/protocol/pubsub - items objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === MaxItems scalar X X X X Node scalar X X X X Item child X X X X Items master X X =head1 http://jabber.org/protocol/pubsub - options objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Node scalar X X X X Options master X X =head1 http://jabber.org/protocol/pubsub - publish objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Item child X X X X Publish master X X =head1 http://jabber.org/protocol/pubsub - purge objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Purge master X X =head1 http://jabber.org/protocol/pubsub - retract objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Item child X X X X Retract master X X =head1 http://jabber.org/protocol/pubsub - subscribe objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Node scalar X X X X Subscribe master X X =head1 http://jabber.org/protocol/pubsub - subscribe-options objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Required flag X X X X SubscribeOptions master X X =head1 http://jabber.org/protocol/pubsub - unsubscribe objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Node scalar X X X X Unsubscribe master X X =head1 http://jabber.org/protocol/pubsub#event Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Delete child X X X X Items child X X X X Event master X X =head1 http://jabber.org/protocol/pubsub#event - delete objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Delete master X X =head1 http://jabber.org/protocol/pubsub#event - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ID scalar X X X X Payload raw X X X X Item master X X =head1 http://jabber.org/protocol/pubsub#event - items objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Item child X X X X Items master X X =head1 http://jabber.org/protocol/pubsub#owner Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Action scalar X X X X Configure child X X X X Owner master X X =head1 http://jabber.org/protocol/pubsub#owner - configure objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Node scalar X X X X Configure master X X =head1 http://jabber.org/protocol/si Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ID scalar X X X X MimeType scalar X X X X Profile scalar X X X X Stream master X X =head1 http://jabber.org/protocol/si/profile/file-transfer Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Date scalar X X X X Desc scalar X X X X Hash scalar X X X X Name scalar X X X X Range flag X X X X RangeLength scalar X X X X RangeOffset scalar X X X X Size scalar X X X X File master X X =head1 jabber:iq:agent - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Agents flag X X X X Description scalar X X X X GroupChat flag X X X X JID jid X X X X Name scalar X X X X Register flag X X X X Search flag X X X X Service scalar X X X X Transport scalar X X X X URL scalar X X X X Agent master X X =head1 jabber:iq:agents - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Agent child X Agents child X X X =head1 jabber:iq:autoupdate Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Beta child X Dev child X Release child X Releases child X X X =head1 jabber:iq:autoupdate - release objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X Priority scalar X X X X URL scalar X X X X Version scalar X X X X Release master X X =head1 jabber:iq:browse - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Category scalar X X X X JID jid X X X X NS array X X X X Name scalar X X X X Type scalar X X X X Item child X Items child X X X Browse master X X =head1 jabber:iq:browse - item objects - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Category scalar X X X X JID jid X X X X NS array X X X X Name scalar X X X X Type scalar X X X X Item child X Items child X X X Browse master X X =head1 jabber:iq:conference Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === ID scalar X X X X Name scalar X X X X Nick scalar X X X X Privacy flag X X X X Secret scalar X X X X Conference master X X =head1 jabber:iq:filter - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Rule child X Rules child X X X =head1 jabber:iq:filter - rule objects - DEPRECATED Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Body scalar X X X X Continued scalar X X X X Drop scalar X X X X Edit scalar X X X X Error scalar X X X X From scalar X X X X Offline scalar X X X X Reply scalar X X X X Resource scalar X X X X Show scalar X X X X Size scalar X X X X Subject scalar X X X X Time scalar X X X X Type scalar X X X X Unavailable scalar X X X X Rule master X X =head1 jabber:iq:gateway Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X JID jid X X X X Prompt scalar X X X X Gateway master X X =head1 jabber:iq:last Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Message scalar X X X X Seconds scalar X X X X Last master X X =head1 jabber:iq:oob Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X URL scalar X X X X Oob master X X =head1 jabber:iq:pass Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Client scalar X X X X ClientPort scalar X X X X Close flag X X X X Expire scalar X X X X OneShot flag X X X X Proxy scalar X X X X ProxyPort scalar X X X X Server scalar X X X X ServerPort scalar X X X X Pass master X X =head1 jabber:iq:rpc Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === MethodCall child X X X X MethodResponse child X X X X =head1 jabber:iq:rpc - array objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Data child X Datas child X X X =head1 jabber:iq:rpc - data objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Value child X X X X =head1 jabber:iq:rpc - fault objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Value child X X X X =head1 jabber:iq:rpc - member objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Name scalar X X X X Value child X X X X Member master X X =head1 jabber:iq:rpc - methodCall objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === MethodName scalar X X X X Params child X X X X MethodCall master X X =head1 jabber:iq:rpc - methodResponse objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Fault child X X X X Params child X X X X =head1 jabber:iq:rpc - param objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Value child X X X X =head1 jabber:iq:rpc - params objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Param child X Params child X X X =head1 jabber:iq:rpc - struct objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Member child X Members child X X X =head1 jabber:iq:rpc - value objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Base64 scalar X X X X Boolean scalar X X X X DateTime scalar X X X X Double scalar X X X X I4 scalar X X X X Int scalar X X X X String scalar X X X X Value scalar X X X X Array child X X X X Struct child X X X X RPCValue master X X =head1 jabber:iq:search Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Email scalar X X X X Family scalar X X X X First scalar X X X X Given scalar X X X X Instructions scalar X X X X Key scalar X X X X Last scalar X X X X Name scalar X X X X Nick scalar X X X X Truncated flag X X X X Item child X Items child X X X Search master X X =head1 jabber:iq:search - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Email scalar X X X X Family scalar X X X X First scalar X X X X Given scalar X X X X JID jid X X X X Key scalar X X X X Last scalar X X X X Name scalar X X X X Nick scalar X X X X Item master X X =head1 jabber:iq:time Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Display special X X X X TZ special X X X X UTC special X X X X Time master X X =head1 jabber:iq:version Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Name scalar X X X X OS special X X X X Ver special X X X X Version master X X =head1 jabber:x:autoupdate Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Autoupdate master X X =head1 jabber:x:conference Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === JID jid X X X X Conference master X X =head1 jabber:x:data Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Form scalar X X X X Instructions scalar X X X X Title scalar X X X X Type scalar X X X X Field child X Fields child X X X Item child X Items child X X X Reported child X X X X Data master X X =head1 jabber:x:data - field objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X Label scalar X X X X Required flag X X X X Type scalar X X X X Value array X X X X Var scalar X X X X Option child X Options child X X X Field master X X =head1 jabber:x:data - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Field child X Fields child X X X Item master X X =head1 jabber:x:data - option objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Label scalar X X X X Value scalar X X X X Option master X X =head1 jabber:x:data - reported objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Field child X Fields child X X X Reported master X X =head1 jabber:x:delay Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === From jid X X X X Message scalar X X X X Stamp timestamp X X X X Delay master X X =head1 jabber:x:encrypted Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Message scalar X X X X Encrypted master X X =head1 jabber:x:event Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Composing flag X X X X Delivered flag X X X X Displayed flag X X X X ID scalar X X X X Offline flag X X X X Event master X X =head1 jabber:x:expire Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Seconds scalar X X X X Expire master X X =head1 jabber:x:oob Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Desc scalar X X X X URL scalar X X X X Oob master X X =head1 jabber:x:roster Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Item child X Items child X X X Roster master X X =head1 jabber:x:roster - item objects Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Ask scalar X X X X Group array X X X X JID jid X X X X Name scalar X X X X Subscription scalar X X X X Item master X X =head1 jabber:x:signed Name Type Get Set Remove Defined Add ========================== ========= === === ====== ======= === Signature scalar X X X X Signed master X X =cut # DOC_END =head1 AUTHOR Ryan Eatmon =head1 COPYRIGHT This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut use strict; use Carp; use Net::XMPP::Stanza; use Net::Jabber::Namespaces; use base qw( Net::XMPP::Stanza ); use vars qw( $TIMEZONE ); if (eval "require Time::Timezone") { $TIMEZONE = 1; Time::Timezone->import(qw(tz_local_offset tz_name)); } else { $TIMEZONE = 0; } sub _init { my $self = shift; my $result = $self->SUPER::_init(@_); if (defined($result)) { $result->_CustomSet_init(); return $result; } $self->_CustomSet_init(); return; } sub GetX { my $self = shift; $self->GetChild(@_); } sub DefinedX { my $self = shift; $self->DefinedChild(@_); } sub NewX { my $self = shift; $self->NewChild(@_); } sub AddX { my $self = shift; $self->AddChild(@_); } sub RemoveX { my $self = shift; $self->RemoveChild(@_); } sub GetQuery { my $self = shift; $self->GetChild(@_); } sub DefinedQuery { my $self = shift; $self->DefinedChild(@_); } sub NewQuery { my $self = shift; $self->NewChild(@_); } sub AddQuery { my $self = shift; $self->AddChild(@_); } sub RemoveQuery { my $self = shift; $self->RemoveChild(@_); } sub _new_jid { my $self = shift; return new Net::Jabber::JID(@_); } sub _new_packet { my $self = shift; return new Net::Jabber::Stanza(@_); } sub _CustomSet_init { my $self = shift; $self->{CUSTOMSET}->{"time-display"} = \&_CustomSet_timedisplay; $self->{CUSTOMSET}->{"time-tz"} = \&_CustomSet_timetz; $self->{CUSTOMSET}->{"time-utc"} = \&_CustomSet_timeutc; $self->{CUSTOMSET}->{"version-os"} = \&_CustomSet_versionos; $self->{CUSTOMSET}->{"version-version"} = \&_CustomSet_versionversion; } sub _CustomSet_timedisplay { my $self = shift; my $value = shift; return $value if defined($value); $self->{DATA}->{__netjabbertime__} = time unless exists($self->{DATA}->{__netjabbertime__}); return &Net::XMPP::GetTimeStamp("local",$self->{DATA}->{__netjabbertime__}); } sub _CustomSet_timetz { my $self = shift; my $value = shift; if (!defined($value) && ($TIMEZONE == 1)) { return uc(&tz_name(&tz_local_offset())) } return $value; } sub _CustomSet_timeutc { my $self = shift; my $value = shift; return $value if defined($value); $self->{DATA}->{__netjabbertime__} = time unless exists($self->{DATA}->{__netjabbertime__}); return &Net::XMPP::GetTimeStamp("utc",$self->{DATA}->{__netjabbertime__},"stamp"); } sub _CustomSet_versionos { my $self = shift; my $value = shift; return (&POSIX::uname())[0]; } sub _CustomSet_versionversion { my $self = shift; my $value = shift; if (defined($value)) { $value .= " - [ Net::Jabber v$Net::Jabber::VERSION ]"; } else { $value = "Net::Jabber v$Net::Jabber::VERSION"; } return $value; } sub GetResults { my $self = shift; my %results; foreach my $item ($self->GetItems()) { my %result; my @xData = $item->GetX("jabber:x:data"); if ($#xData == -1) { %result = $item->GetItem(); } else { foreach my $field ($xData[0]->GetFields()) { $result{$field->GetVar()} = $field->GetValue(); } } $results{$item->GetJID()} = \%result; } return %results; } 1;