Hi, <br><br>Since there were a bunch of interest in mobile optimizations at the xmpp summit, I&#39;d like to share a simple presence queuing optimization available in the Google Talk service. Hopefully those interested can play with this to gain experience in how presence queuing affects battery life and use that knowledge when designing future optimizations. This is not a standards proposal of any sort.<br>

<br>The presence queue feature saves battery in two ways: (1) by queuing presence
going to the client and (2) by increasing the interval for white-space pings sent from server to client.<br><br>Protocol example:<br><br>Client enables queuing:<br><br>   &lt;iq from=&#39;node@domain/resource&#39; type=&#39;set&#39;&gt;<br>

     &lt;query xmlns=&#39;google:queue&#39;&gt;<br>       &lt;enable/&gt;<br>     &lt;/query&gt;<br>   &lt;/iq&gt;<br><br>Server responds:<br><br>   &lt;iq to=&#39;&#39;node@domain/resource&#39; type=&#39;result&#39;/&gt;<br>

<br>The possible &#39;commands&#39; are:<br>&lt;enable/&gt;  -  enables presence queuing.<br>&lt;disable/&gt; -  disables presence queuing.<br>&lt;flush/&gt;   -  send all presence in queue to client.<br><br>Details:<br>
<br>
 - Queued stanzas are presence available/unavailable. Presence subscribe, message, iq etc are not queued.<br><br> - Queue only keeps the last presence stanza for a given from-jid (i.e. full jid).<br>
<br> - There is a size limit for queue, when reached presence in queue is flushed to the client.<br><br> - When enabled, server-to-client white-space pinging is reduced to once every ~30min.<br><br>Hopefully, some of you will find this helpful.<br>

<br>Jonas Lindberg<br>