In default configuration stanzas are sent to the client when processing is finished, but in mobile environment sending or receiving data drains battery due to use of the radio.
To save energy data should be sent to client only if it is important or client is waiting for it.
When mobile client is entering inactive state it notifies server about it by sending following stanza:
<iq type="set" id="xx"> <mobile xmlns="http://tigase.org/protocol/mobile#v3" enable="true"/> </iq>
After receiving stanza server starts queuing stanza which should be send to mobile client. What kind of queued stanzas depends on the plugins used and in case of Mobile v3 presence stanzas are queued as well as message stanzas which are Message Carbons. Any other stanza (such as iq or plain messenge) is sent immediately to the client and every stanza from queue is also sent at this time.
When mobile client is entering active state it notifies server by sending following stanza:
<iq type="set" id="xx"> <mobile xmlns="http://tigase.org/protocol/mobile#v3" enable="false"/> </iq>
After receiving stanza server sends all queued stanzas to the client.
Also all stanzas from queue will be sent if number of stanzas in queue will reach queue size limit. By default this limit is set to 50.
There are three mobile optimization plugins for Tigase:
If you wish to activate you Mobile v1 plugin you need to send presented above with xmlns attribute value replaced with http://tigase.org/protocol/mobile#v1
If you wish to activate you Mobile v2 plugin you need to send presented above with xmlns attribute value replaced with http://tigase.org/protocol/mobile#v2