Subscription flow ================= Happy flow ---------- Contact1 makes a presence subscription request to contact2. :: Contact1 receives a roster update :: Contact2 receives the presence subscription, but no roster update. We create a roster item manually in handleIncomingSubscription and add the 'requesting' property to indicate that this is an incoming request. Contact2 clicks "Accept". This confirms the subscription and subscribes back. :: IF Contact1 is still online and likewise subscribes back, Contact2 will receive a roster update :: ELSE, Contact 2 will receive a roster update (but not an IQ stanza) :: ask = null subscription = "from" Contact1's converse.js client will automatically approve. Contact2 receives a roster update (as does contact1). ::