Uploaded image for project: 'Service Packs and Hot Fixes'
  1. Service Packs and Hot Fixes
  2. MNT-12560

Support for IMAP IDLE command (RFC 2177) ('PUSH' concept to avoid synchronization delays)

    Details

    • Type: Feature
    • Status: Need Info (View Workflow)
    • Resolution: Unresolved
    • Affects Version/s: 4.2.3
    • Fix Version/s: None
    • Component/s: IMAP
    • Labels:
    • Environment:
      any with IMAP
    • Bug Priority:
      Category 2
    • ACT Numbers:

      00209221, 00206517

      Description

      feature request

      Customer notices a behaviour in Alfresco IMAP that is not seen with the other IMAP server they use:
      when a content is added to Share in may take a much longer time for the client to notify the IMAP client that the new content has been added.

      1) Comparing our CAPABILITY line with e.g. Dovecot's

      Alfreco IMAP:

      >>> BNLB2 CAPABILITY
      <<< * CAPABILITY IMAP4rev1 LITERAL+
      <<< BNLB2 OK CAPABILITY completed.
      

      Dovecot:

      >>> BGKJ2 CAPABILITY
      <<< * CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE
      <<< BGKJ2 OK Capability completed.
      

      I see that we are missing the IDLE feature.
      IDLE has been created for exactly the purpose of notifying the client.
      see

      2) more information on IDLE:

      a) RFC 2177: IMAP4 IDLE

      b) http://en.wikipedia.org/wiki/IMAP_IDLE

      (lists also the client that support it. The list inclused Outlook and Thunderbird)

      3) see also the concept of PUSH in IMAP:

      http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol

      paragraph:

      "IMAP4 clients need to maintain a TCP/IP connection to the IMAP server in order to be notified of the arrival of new mail. Notification of mail arrival is done through in-band signaling, which contributes to the complexity of client-side IMAP protocol handling somewhat.[14] A private proposal, push IMAP, would extend IMAP to implement push e-mail by sending the entire message instead of just a notification. "

      [14] http://www.isode.com/whitepapers/imap-idle.html

      (creative commons article attached)

      4) Note that this is still a client-server model, and not a bidirectional link like websockets for instance.

      5) Note that without IDLE you could still request for the changes but that's heavier and we need to understand how many clients one server can handle. Each client can set a frequency of poll, for Outlook 2011 and 2013 see e.g
      http://www.solveyourtech.com/how-to-change-the-send-and-receive-frequency-in-outlook-2011/
      http://www.solveyourtech.com/change-outlook-2013-send-and-receive-frequency/
      http://answers.microsoft.com/en-us/mac/forum/macoffice2011-macoutlook/change-sendreceive-frequency/09952d77-9852-4130-b529-35434d1d0836

      6) To give a visual impression of how comfortable an immediate apparition is I attached videos about the Alfresco imap delays:
      delay_alfresco_imap1.mp4
      delay_alfresco_imap2.mp4

      and the Dovecot immediate apparition:

      dovecot_immediate_with_IDLE.mp4

      as well as dovecot dump filedump_dovecot_idle.pcap
      that shows that connections with IDLE are just 'held' until something new appears.

        Attachments

        1. delay_alfresco_imap1.mp4
          8.26 MB
        2. delay_alfresco_imap2.mp4
          3.23 MB
        3. dovecot_immediate_with_IDLE.mp4
          2.32 MB
        4. dump_dovecot_idle.pcap
          74 kB
        5. imap-idle.html
          43 kB

          Issue Links

            Structure

              Activity

                People

                • Assignee:
                  resplin Richard Esplin [X] (Inactive)
                  Reporter:
                  amadon Alex Madon [X] (Inactive)
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Structure Helper Panel